package com.echo.util;

import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import com.echo.util.StringUtils;

/**
 * Markdown格式转换工具类
 */
public class MarkdownUtils {

    /**
     * 将Markdown字符串转为HTML字符串
     * @param markdown Markdown原内容
     * @return 解析后的HTML内容（空输入返回空字符串）
     */
    public static String markdownToHtml(String markdown) {
        if (StringUtils.isEmpty(markdown)) {
            return "";
        }
        
        // 初始化解析器（使用默认配置，不使用扩展）
        Parser parser = Parser.builder().build();
        
        // 初始化HTML渲染器（使用默认配置）
        HtmlRenderer renderer = HtmlRenderer.builder().build();
        
        // 解析并渲染
        String htmlContent = renderer.render(parser.parse(markdown));
        
        // 安全处理：移除危险的HTML标签（如script、iframe等）
        return sanitizeHtml(htmlContent);
    }
    
    /**
     * 对HTML内容进行安全过滤，移除危险标签
     * @param html 原始HTML内容
     * @return 过滤后的安全HTML内容
     */
    private static String sanitizeHtml(String html) {
        if (html == null) {
            return "";
        }
        
        // 简单的HTML标签过滤，保留基本的文本格式标签
        // 注意：在实际项目中，可以考虑使用更专业的HTML清理库如Jsoup
        return html
            .replaceAll("<script[^>]*>.*?</script>", "")
            .replaceAll("<iframe[^>]*>.*?</iframe>", "")
            .replaceAll("<embed[^>]*>", "")
            .replaceAll("<object[^>]*>.*?</object>", "");
    }
}